#! user/bin/python
# -*- coding: utf-8 -*-

"""
Created on 2021/8/25 16:44

@File: smtp邮件发送器脚本_smtpmail.py
@Author: LT
@Description: 这个脚本只是一个单次运行地简单发送脚本
"""
import smtplib
import sys
import email.utils
from .. import 邮件配置模块_mailconfig

smtpmailserver = 邮件配置模块_mailconfig.smtpservername

From = input('From? ').strip()                          # 发送人——他可以是完全虚构的，SMTP不会校验它的有效性（所以可以做垃圾邮件）
To = input('To? ').strip()                              # 收件人
Tos = To.split(';')                                     # 允许收件人组成的列表
Subj = input('Subj? ').strip()                          # 输入邮件主题
Date = email.utils.formatdate()                         # 当前的日期

# 标准题头(headers)，后面是空行，然后是文本
text = 'From: %s\nTo: %s\nDate: %s\nSubject: %s\n\n' % (From, To, Date, Subj)

# 开始写邮件
print('Type message text, end with line=[Ctrl+d (in Unix), Ctrl+z (in Windows)]')
while True:
    line = sys.stdin.readline()                         # 每次读取标准输入的一行
    if not line:                                        # 在输入ctrl+z/d的时候退出
        break
    # if line[:4] == 'From':
    #    line = '>' + line                                # 服务器可能进行了转义
    text += line

print('Connecting...')
server = smtplib.SMTP(smtpmailserver)                   # 连接
server.login(邮件配置模块_mailconfig.smtpusername, 邮件配置模块_mailconfig.qq_pop_smtp_authorized_code)
failed = server.sendmail(From, Tos, text.encode('utf-8'))
server.quit()

if failed:                                              # smtplib也可能抛出异常
    print('Failed recipients:', failed)                 # 不过在这里让它们先通过
else:
    print('No errors.')
print('Bye.')
